package kliment.display.draw {
	import kliment.display.draw.style.BitmapFillStyle;
	import kliment.display.draw.style.FillColorStyle;
	import kliment.display.draw.style.GradientStyle;
	import kliment.display.draw.style.LineStyle;
	
	/**
	 * ...
	 * @author Kliment
	 */
	public class DrawStyle {
		public var fillColorStyle:FillColorStyle;
		public var fillGradientStyle:GradientStyle;
		public var fillBitmap:BitmapFillStyle;
		public var lineStyle:LineStyle;
		public var lineGradientStyle:GradientStyle;
		
		public function DrawStyle(fillColorStyle:FillColorStyle = null, lineStyle:LineStyle = null, fillGradientStyle:GradientStyle = null, fillBitmap:BitmapFillStyle = null, lineGradientStyle:GradientStyle = null) {
			if (!fillColorStyle && !lineStyle && !fillGradientStyle && !fillBitmap && !lineGradientStyle)
				fillColorStyle = new FillColorStyle();
			this.fillColorStyle = fillColorStyle;
			this.lineStyle = lineStyle;
			this.fillGradientStyle = fillGradientStyle;
			this.fillBitmap = fillBitmap;
			this.lineGradientStyle = lineGradientStyle;
		}
		
		public function clone(totalClone:Boolean = false):DrawStyle {
			if (totalClone)
				return new DrawStyle(fillColorStyle.clone(), lineStyle.clone(), fillGradientStyle.clone(), fillBitmap.clone(), lineGradientStyle.clone());
			else 
				return new DrawStyle(fillColorStyle, lineStyle, fillGradientStyle, fillBitmap, lineGradientStyle);
		}
	}
}